package com.orbitz.monitoring.lib.decomposer;
import static org.junit.Assert.*;
import java.io.Serializable;
import java.util.Arrays;
import java.util.IdentityHashMap;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
/**
* Tests ArrayDecomposer
* @author Doug Barth
*/
public class ArrayDecomposerTest {
private ArrayDecomposer _decomposer;
private MockDecomposerStep _delegate;
/**
* Prepares for each test
*/
@Before
public void setUp() {
_delegate = new MockDecomposerStep();
_decomposer = new ArrayDecomposer(_delegate);
}
/**
* see ArrayDecomposer#decompose(Object, IdentityHashMap)
*/
@Test
public void testDecomposeNull() {
assertNull(_decomposer.decompose(null, new IdentityHashMap<Object, Serializable>()));
}
/**
* see ArrayDecomposer#decompose(Object, IdentityHashMap)
*/
public void testDecompose() {
Object[] original = new Object[2];
original[0] = "abc";
original[1] = new Exception();
Object[] decomposed = (Object[])_decomposer.decompose(original,
new IdentityHashMap<Object, Serializable>());
assertEquals(original.length, decomposed.length);
List<Object> decomposedObjects = _delegate.getDecomposedObjects();
assertTrue(decomposedObjects.containsAll(Arrays.asList(original)));
}
}